/*****************************************************************************
* | File      	:   EPD_2IN9_A1.h
GDEH029A1
IL3820

// based on Demo Example from Good Display: http://www.e-paper-display.com/download_list/downloadcategoryid=34&isMode=false.html
// Controller: IL3820 : http://www.e-paper-display.com/download_detail/downloadsId=540.html
******************************************************************************/
#ifndef __EPD_2IN9_A1_H_
#define __EPD_2IN9_A1_H_

#include "../DEV_Config.h"

// Display resolution
#define EPD_2IN9_A1_WIDTH       128
#define EPD_2IN9_A1_HEIGHT      296


#define EPD_2IN9_A1_FULL 0
#define EPD_2IN9_A1_PART 1
#define EPD_2IN9_A1_FAST 2

// #define EPD_2IN9_A1_Bwr4   2
// #define EPD_2IN9_A1_Bwr8   3
// #define EPD_2IN9_A1_Bwr16  4


// typedef enum
// {
//   FULL = 0,
//   Grey4_Bwr,
//   Grey8_Bwr,
//   Grey16_Bwr,
// } LUT_TYPE;



void EPD_2IN9_A1_Init(uint8_t lut_type=EPD_2IN9_A1_FULL);
void EPD_2IN9_A1_Clear(void);
void EPD_2IN9_A1_Display( unsigned char *BW_Image);
void EPD_2IN9_A1_Sleep(void);
void EPD_2IN9_A1_TurnOnDisplay(uint8_t part=EPD_2IN9_A1_FULL);
void EPD_2IN9_A1_Data_Write(UBYTE color,UBYTE *Image_Data,UDOUBLE index,UDOUBLE length);
void EPD_2IN9_A1_setDepth(uint8_t i);
// void EPD_2IN9_A1_Fast_TurnOnDisplay(void);
int8_t EPD_A1_ReadTemp();
void EPD_2IN9_A1_Part_Init();
void EPD_2IN9_A1_Clear2(void);
#endif
